using System;
using System.Collections.Generic;

namespace DeviceManager.Device
{

    public interface IDeviceImpl
    {
        // Public Method
        bool OpenConnection();
        bool CloseConnection();

        bool SubscribeEvents();
        bool UnSubscribleEvents();

        bool Init();

        event DeviceEvent ConnectionOpened;
        event DeviceEvent ConnectionClosed;
        event DeviceEvent DeviceError;
        event DeviceEvent StatusChanged;
        event DeviceEvent Timeout;
        event DeviceEvent Locked;
        event DeviceEvent Unlocked;
        event DeviceEvent LockTimeout;
        event DeviceEvent EnabledEventsDeferred;
    }
}
